package com.meituan.sdk.model.pms.esports.underageCheck;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 未成年登录电竞设备校验
* This file was automatically generated.
*/
@ApiMeta(
    path = "/pms/esports/underageCheck",
    businessId = 57,
    apiVersion = "10034",
    apiName = "underage_check",
    needAuth = true
)
public class UnderageCheckRequest implements MeituanRequest<UnderageCheckResponse> {
    /**
    * <p data-diff-id="ct-diff-id-4faab02d-2206-46a9-b387-ed2e966f448c">酒店ID</p>
    */
    @NotNull(message = "hotelId不能为空")
    @SerializedName("hotelId")
    private Long hotelId;
    /**
    * <p data-diff-id="ct-diff-id-d4cb5c3b-da48-4359-a312-bba4e5842433">房间号</p>
    */
    @NotBlank(message = "roomNumber不能为空")
    @SerializedName("roomNumber")
    private String roomNumber;
    /**
    * <p data-diff-id="ct-diff-id-b1f7558a-8db9-4e82-86d1-f42f298fdaeb">住客姓名</p>
    */
    @NotBlank(message = "customerName不能为空")
    @SerializedName("customerName")
    private String customerName;
    /**
    * <p data-diff-id="ct-diff-id-dd5c4b3f-adb3-4e1c-aff0-26c8f75386de">证件类型，编码详见PersonalCredentialType字典，例如C01代表身份证</p>
    */
    @NotBlank(message = "personalCredentialType不能为空")
    @SerializedName("personalCredentialType")
    private String personalCredentialType;
    /**
    * <p data-diff-id="ct-diff-id-f157ce0d-95ae-414d-9920-47a92d3851e0">证件号码，与证件号码后6位不能同时为空</p>
    */
    @SerializedName("idCardNumber")
    private String idCardNumber;
    /**
    * <p data-diff-id="ct-diff-id-b265f5e4-1f3e-4fdb-81fa-1edec19e0282">证件号码后6位，与证件号码不能同时为空</p>
    */
    @SerializedName("shortIdCardNumber")
    private String shortIdCardNumber;
    /**
    * <p data-diff-id="ct-diff-id-0b19fd4f-8457-49ea-9bf5-b0ffeac33f6d">电脑序列号</p>
    */
    @SerializedName("serialNumber")
    private String serialNumber;

    public Long getHotelId() {
        return hotelId;
    }
    public void setHotelId(Long hotelId) {
        this.hotelId = hotelId;
    }
    public String getRoomNumber() {
        return roomNumber;
    }
    public void setRoomNumber(String roomNumber) {
        this.roomNumber = roomNumber;
    }
    public String getCustomerName() {
        return customerName;
    }
    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }
    public String getPersonalCredentialType() {
        return personalCredentialType;
    }
    public void setPersonalCredentialType(String personalCredentialType) {
        this.personalCredentialType = personalCredentialType;
    }
    public String getIdCardNumber() {
        return idCardNumber;
    }
    public void setIdCardNumber(String idCardNumber) {
        this.idCardNumber = idCardNumber;
    }
    public String getShortIdCardNumber() {
        return shortIdCardNumber;
    }
    public void setShortIdCardNumber(String shortIdCardNumber) {
        this.shortIdCardNumber = shortIdCardNumber;
    }
    public String getSerialNumber() {
        return serialNumber;
    }
    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }


    @Override
    public MeituanResponse<UnderageCheckResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<UnderageCheckResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "UnderageCheckRequest{" + "hotelId=" + hotelId + "," + "roomNumber=" + roomNumber + "," + "customerName=" + customerName + "," + "personalCredentialType=" + personalCredentialType + "," + "idCardNumber=" + idCardNumber + "," + "shortIdCardNumber=" + shortIdCardNumber + "," + "serialNumber=" + serialNumber + "}";
    }
}
